This application contains computer program listing attached as appendix. This appendix has been submitted on a single compact disc.
1. Field of the Invention
The present invention relates generally to methods for exchanging data between disparate data hosts including application programs and data bases. More specifically, the present invention relates to a user transparent process for exchanging and routing data representing postal address information between disparate data hosts.
2. Description of the Prior Art
Application programs and databases, including relational databases, are examples of data hosts used for generating, manipulating, and storing data. A wide variety of data hosts are commercially available for managing many different types of data for a multitude of purposes. Application programs and databases typically include strict rules for defining composite data types that may be used therein. The data types may include records, arrays and other structures.
Generally, data formats may be categorized as either plain text data, or parsed and tagged data. Plain text data is of variable length and composition and is not easily parsed into fields, and therefore there are no portions of the plain text data which are separately identifiable. Plain text data is most commonly managed in word processing type application programs. In database files, data is generally managed in a parsed and tagged type of format either by a database manager or by a special purpose application program.
Database files generally include data records and header records. In general, database files may be managed either by a database manager or by a special-purpose application program. A database manager provides for a user to specify record structures upon creation of the database file. A record structure is generally described by field names, data formats, and byte offsets or specific delimiters in the record. Database manager programs maintain data dictionary records as headers in the database file, the records typically specifying parameters associated with each field including a name, a start byte offset, and a data format. Special-purpose application programs are used to generate and manipulate databases of one specified record structure, the specification of which is embedded in the code of the program rather than in header records of the file. Currently, there is no standard internal data format used by all application programs and data base managers. Application programs and data bases typically use complex proprietary data formats.
The disparity in internal data formats between different types of application programs and database managers causes problems for users who wish to exchange data between these disparate databases. A disparity in internal data formats from one data host to another may also arise due to the use of different compilers and different hardware architectures, sometimes referred to as xe2x80x9cplatformsxe2x80x9d. application programs and data bases are written in a higher order language, and then compiled by other programs called compilers. The same or different compilers used on different computers may result in different internal data formats for the same data. Different compilers used on identical platforms may also result in different internal data formats. Another problem is that different compilers and platforms may use different byte ordering including Big-Endian and Little-Endian byte ordering.
It has become increasingly desirable for users to be able to conveniently exchange data between disparate application programs and databases running on disparate computer platforms including desk top computers, hand held computers, and web servers. Due to the disparities in the internal data formats of the various data hosts, transfer of data between disparate data hosts typically: is not readily achievable via ordinary file transfer. The different internal data formats must be reconciled for disparate data hosts to communicate with each other. When information is to be exchanged between disparate data hosts, some form of data format conversion is required.
A variety of prior art techniques have been developed specifically for exchanging data between handheld computers and desk top computers. Handheld computers, such as personal digital assistants (PDA""s), typically provide some combination of personal information management functions, database functions, word processing functions, and spreadsheet functions. Due to limitations in memory size and processing power, handheld computers are generally limited in functionality and differ in data content and usage from similar applications on desktop computers. Many users of handheld computers, such as personal digital assistants (PDA""s), also own a desktop computer which may be used for application programs that manage data similar to the data stored in the handheld computer. A user typically stores the same data on the desktop computer and handheld computer. Therefore, it is very desirable for a user to be able to conveniently exchange data between desk top application programs and data bases, and memory resident data sets of a hand held computer.
Data exchange between disparate application programs is also very important in electronic commerce wherein computer systems are interconnected through computer networks of various configurations. Networked computer systems have allowed for the emergence of many different types of transactions between users operating disparate application programs running on disparate computer platforms. A recent development in the World Wide Web is the capability to send data from web clients back to a web server using fill-in xe2x80x9cformsxe2x80x9d. This enables web users to enter information such as, for example, credit card numbers and addresses for purchases made over the Internet. In the growing field of electronic commerce, many such information transactions are becoming common place of for varying purposes. A xe2x80x9cformxe2x80x9d typically includes standard graphic user interface (GUI) controls such as text boxes, check boxes, and menus. Each control is given a name that eventually becomes a variable item that a processing script uses. Text and password boxes can be used to create registration forms which include fields representing an address including a name field, a phone number field, a street address field, a city field, a state field, and a zip code field, a phone number field, an e-mail address field, and a web address field.
In accordance with one type of prior art methods for exchanging data between disparate data hosts, a user must call separate services to encode and decode basic data field types or to define messages in a separate language syntax that will be used for information exchange. These prior approaches do not provide transparent data exchange, and impose a significant translation overhead on the systems involved.
Crozier (U.S. Pat. No. 5,701,423, issued Dec. 23, 1997) discloses a computer implemented method for translating computer data from a source record structure having information arranged in a source file, to a destination record structure. Each of the source and destination record structures includes a plurality of fields, each having a name. The destination record structure differs from the source record structure in field name, field order, or one-to-many or many-to-one field correspondence. The source file exists on a first computer and the destination record structure is specified by a program for execution on a second computer. The method includes the steps of: presenting the names of the fields of each of the source and destination record structures on a display; allowing a user to interactively select a field from the source record structure and a corresponding field from the destination record structure, thereby establishing a mapping between the fields; and translating the information of the source file, which is arranged in the source record structure, into a form compatible with the destination record structure in accordance with the mapping. This method is not transparent to the user because it places a burden of defining a mapping model for data translation on the user of the data hosts.
What is needed is a process for user-transparent exchange of data between disparate data hosts running on disparate computer platforms including hand held computers, desk top computers, and web servers, wherein the process provides automatic mapping between fields of a source data host and corresponding fields of a destination data host.
Also needed is a process for user-transparent exchange of data between disparate data hosts wherein if the internal data format of the source data host is a plain text data format, the process provides automatic parsing of the plain text data into discrete fields which are tagged to identify characteristics of the portion of plain text data parsed in to the corresponding field.
Further needed is a process for user-transparent exchange of data wherein: characteristics of the source and destination data hosts, including internal data format characteristics and interfacing requirements, are automatically determined; and wherein appropriate driver interface modules, each being compatible with a corresponding data host, are automatically provided.
Further still, a process is needed for user-transparent exchange of data between disparate data hosts running on disparate computer platforms, wherein the process facilitates more convenient transactions in electronic commerce.
It is an object of the present invention to provide a process for user-transparent exchange of data between disparate data hosts running on disparate computer platforms including hand held computers, desk top computers, and web servers, wherein the process provides automatic mapping between fields of a source data host and corresponding fields of a destination data host.
Another object of the present invention is to provide a process for user-transparent exchange of data wherein: characteristics of the source and destination data hosts, including internal data format characteristics and interfacing requirements, are automatically determined; and wherein appropriate driver interface modules, each being compatible with a corresponding data host, are automatically provided.
It is a further object of the present invention to provide a process for user-transparent exchange of data between disparate data hosts wherein if the internal data format of the source data host is a plain text data format, the process provides automatic parsing of the plain text data into discrete fields which are tagged to identify characteristics of the portion of plain text data parsed in to the corresponding field.
Yet another object of the present invention is to provide a process for user-transparent exchange of data between disparate data hosts running on disparate computer platforms, wherein the process facilitates more convenient transactions in electronic commerce.
Briefly, a presently preferred embodiment of the present invention includes a data exchange process implemented by a computer system coupled for communication with a remote index server via a network, the process for transferring a data block from a source host having an internal source data format, to a destination host having an internal destination data format different from the source data format. The process includes the steps of: determining characteristics of the source data format by comparing the source data format to sets of data format characteristics stored in a memory storage space of the computer system to determine if a predetermined relationship exists between the characteristics of the source data format and a particular one of the sets. If the predetermined relationship exists, a source driver associated with the particular set is accessed from a memory storage space of the computer system, the source driver being capable of extracting a data block from the source host and converting the format of the data block from the source data format to an intermediate data format.
If no predetermined relationship exists between the characteristics of the source data format and at least one of the sets of data format characteristics stored in the memory storage space of the computer system, the process executes the steps of: sampling data from the source host, transmitting the sampled data to the index server, determining characteristics of the source data format by comparing the sampled data to remote sets of data format characteristics stored in a memory storage space of the index server to determine if a predetermined relationship exists between the sampled data and a particular one of the remote sets, and if the predetermined relationship exists, accessing a source driver associated with the particular remote set from a memory space of the index server, and transmitting the source driver from the index server to the client computer system, the source driver being capable of extracting a data block from the source host and converting the format of the data block from the source data format to the intermediate data format.
The source driver is used to extract a data block from the source host and to convert the format of the data block from the source data format to the intermediate data format. The data block is temporarily stored in an intermediate memory storage location. A destination driver capable of converting the format of the data block from the intermediate data format to the destination data format is provided. The destination driver is used to convert the format of the data block from the intermediate data format to the destination data format, and to insert the data block into the destination host.
An important advantage of the present invention is that internal data format characteristics and interfacing requirements of the source and destination data hosts are automatically determined. Based on these characteristics and requirements, appropriate driver interface modules are determined for each of the source and destination data hosts.
Another important advantage of the present invention is that the driver interface modules are accessed automatically either from a local memory space, or from a dedicated index web server.